gtkwidget: Visually update cursors inside widget when changing cursor
authorCarlos Garnacho <carlosg@gnome.org>
Tue, 4 Apr 2017 15:09:41 +0000 (17:09 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Thu, 25 May 2017 14:25:59 +0000 (16:25 +0200)
gtk/gtkwidget.c

index 41d52462526bd0becc95467bc72ced78bdb8ac3f..92845b21b9f255623f3161cde2a182630f8002eb 100644 (file)
@@ -15668,7 +15668,14 @@ void
 gtk_widget_set_cursor (GtkWidget *widget,
                        GdkCursor *cursor)
 {
-  g_set_object (&widget->priv->cursor, cursor);
+  GtkWidget *toplevel;
+
+  if (!g_set_object (&widget->priv->cursor, cursor))
+    return;
+
+  toplevel = gtk_widget_get_toplevel (widget);
+  if (GTK_IS_WINDOW (toplevel))
+    gtk_window_maybe_update_cursor (GTK_WINDOW (toplevel), widget, NULL);
 }
 
 GdkCursor *